package interview.questions.出现的次数;

/**
 * 问题：
 * <p>
 * 计算数字 k 在 0 到 n 中的出现的次数，k 可能是 0~9 的一个值。
 * <p>
 * 输入：
 * k = 1, n = 12
 * 输出：
 * 5
 * 解释：
 * 在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中，我们发现 1 出现了 5 次 (1, 10, 11, 12)(注意11中有两个1)。
 */
public class DigitCounts {
    /**
     * 遍历每一个数，同时每一个数都遍历每一位，遍历每一位的方法是不断地整除10，直到整除为0。
     */
    public static int solution(int k, int n) {
        // write your code here
        int sum = 0;
        for (int i = 0; i <= n; i++) {
            int num = i;
            while (num / 10 != 0) {
                if (num % 10 == k) {
                    sum++;
                }
                num = num / 10;
            }
            if (num == k)
                sum++;
        }
        return sum;
    }

}
